package com.saydc.actions.caracteristicas;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.saydc.dao.PuestosDAO;
import com.saydc.forms.puestos.especifico.ActualizaPuestoEspecificoForm;
import com.saydc.model.Caracteristica;
import com.saydc.model.Puesto;

public class EliminaCaracteristicasEspecificasAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)throws Exception {
		
		Puesto puesto = (Puesto)request.getSession().getAttribute("puesto");
		ActualizaPuestoEspecificoForm puestoForm = (ActualizaPuestoEspecificoForm)form;
		int[] caracAEliminar = puestoForm.getSeleccionados();
		List<Caracteristica> caracteristicas = puesto.getCaracRequeridas();
		for(int i=0; i<caracAEliminar.length; i++){
			for(Caracteristica caracteristica : caracteristicas){
				if(caracteristica.getIdCaracteristica()==caracAEliminar[i]){
					puesto.getCaracRequeridas().remove(caracteristica);
					break;
				}
			}
		}
		PuestosDAO dao = PuestosDAO.getInstance();
		
		//borro todas para limpiar el orden
		ArrayList<Caracteristica> listaAux = new ArrayList<Caracteristica>();
		listaAux.addAll(puesto.getCaracRequeridas());
		puesto.getCaracRequeridas().clear();
		dao.actualizarPuesto(puesto);
		
		//las vuelvo a cargar de la aux
		puesto.setCaracRequeridas(listaAux);
		
		dao.actualizarPuesto(puesto);
		return mapping.findForward("success");
	}
	
}
